home *** CD-ROM | disk | FTP | other *** search
/ Apple WWDC 1996 / WWDC96_1996 (CD).toast / Technology Materials / MacOS 8 Resources / Developer Tools / Mac OS 8 Interfaces & Libraries / Interfaces / AIncludes / Disks.a < prev    next >
Text File  |  1996-05-01  |  3KB  |  93 lines

  1. ;
  2. ;    File:        Disks.a
  3. ;
  4. ;    Contains:    Disk Driver Interfaces.
  5. ;
  6. ;    Version:    Technology:    System 7.5
  7. ;                Release:    Universal Interfaces 3.0d3 on Copland DR1
  8. ;
  9. ;    Copyright:    © 1984-1996 by Apple Computer, Inc.  All rights reserved.
  10. ;
  11. ;    Bugs?:        If you find a problem with this file, send the file and version
  12. ;                information (from above) and the problem description to:
  13. ;
  14. ;                    Internet:    apple.bugs@applelink.apple.com
  15. ;                    AppleLink:    APPLE.BUGS
  16. ;
  17. ;
  18.     IF &TYPE('__DISKS__') = 'UNDEFINED' THEN
  19. __DISKS__ SET 1
  20.  
  21.     IF &TYPE('__TYPES__') = 'UNDEFINED' THEN
  22.     include 'Types.a'
  23.     ENDIF
  24.     IF &TYPE('__OSUTILS__') = 'UNDEFINED' THEN
  25.     include 'OSUtils.a'
  26.     ENDIF
  27.  
  28. sony                            EQU        0
  29. hard20                            EQU        1
  30. ;
  31. ;    Note:
  32. ;    
  33. ;    qLink is usually the first field in queues, but back in the MacPlus
  34. ;    days, the DrvSts record needed to be expanded.  In order to do this without
  35. ;    breaking disk drivers that already added stuff to the end, the fields 
  36. ;    where added to the beginning.  This was originally done in assembly language
  37. ;    and the record was defined to start at a negative offset, so that the qLink
  38. ;    field would end up at offset zero.  When the C and pascal interfaces where
  39. ;    made, they could not support negative record offsets, so qLink was no longer
  40. ;    the first field.  Universal Interfaces are auto generated and don't support
  41. ;    negative offsets for any language, so DrvSts in Disks.a has qLinks at a 
  42. ;    none zero offset.  Assembly code which switches to Universal Interfaces will
  43. ;    need to compensate for that.
  44. ;
  45. ;
  46. DrvSts                    RECORD 0
  47. track                     ds.w    1                ; offset: $0 (0)        ;  current track 
  48. writeProt                 ds.b    1                ; offset: $2 (2)        ;  bit 7 = 1 if volume is locked 
  49. diskInPlace                 ds.b    1                ; offset: $3 (3)        ;  disk in drive 
  50. installed                 ds.b    1                ; offset: $4 (4)        ;  drive installed 
  51. sides                     ds.b    1                ; offset: $5 (5)        ;  -1 for 2-sided, 0 for 1-sided 
  52. qLink                     ds.l    1                ; offset: $6 (6)        ;  next queue entry 
  53. qType                     ds.w    1                ; offset: $A (10)        ;  1 for HD20 
  54. dQDrive                     ds.w    1                ; offset: $C (12)        ;  drive number 
  55. dQRefNum                 ds.w    1                ; offset: $E (14)        ;  driver reference number 
  56. dQFSID                     ds.w    1                ; offset: $10 (16)        ;  file system ID 
  57. twoSideFmt                 ds.b    1                ; offset: $12 (18)        ;  after 1st rd/wrt: 0=1 side, -1=2 side 
  58. needsFlush                 ds.b    1                ; offset: $13 (19)        ;  -1 for MacPlus drive 
  59. diskErrs                 ds.w    1                ; offset: $14 (20)        ;  soft error count 
  60.                          ORG 18
  61. driveSize                 ds.w    1                ; offset: $12 (18)
  62. driveS1                     ds.w    1                ; offset: $14 (20)
  63. driveType                 ds.w    1                ; offset: $16 (22)
  64. driveManf                 ds.w    1                ; offset: $18 (24)
  65. driveChar                 ds.w    1                ; offset: $1A (26)
  66. driveMisc                 ds.b    1                ; offset: $1C (28)
  67.                          ORG 30
  68. sizeof                     EQU *                    ; size:   $1E (30)
  69.                         ENDR
  70. ;
  71. ; pascal OSErr DiskEject(short drvNum)
  72. ;
  73.     IF GENERATINGCFM THEN
  74.         IMPORT_CFM_FUNCTION DiskEject
  75.     ENDIF
  76.  
  77. ;
  78. ; pascal OSErr SetTagBuffer(void *buffPtr)
  79. ;
  80.     IF GENERATINGCFM THEN
  81.         IMPORT_CFM_FUNCTION SetTagBuffer
  82.     ENDIF
  83.  
  84. ;
  85. ; pascal OSErr DriveStatus(short drvNum, DrvSts *status)
  86. ;
  87.     IF GENERATINGCFM THEN
  88.         IMPORT_CFM_FUNCTION DriveStatus
  89.     ENDIF
  90.  
  91.     ENDIF ; __DISKS__ 
  92.  
  93.